/**
 * 主题初始化脚本
 * 直接读取数据库中的用户主题设置
 */

// 立即确认脚本加载
console.log('🎯 theme-init.js 已加载');
console.log('当前页面URL:', window.location.href);
console.log('jQuery是否可用:', typeof jQuery !== 'undefined');

(function($) {
    'use strict';

    // 主题初始化 - 直接读取PHP传递的主题
    function initializeTheme() {
        console.log('=== 主题初始化开始 ===');
        
        // 检查wpSpiderMonitor是否存在
        if (typeof wpSpiderMonitor === 'undefined') {
            console.error('❌ wpSpiderMonitor 未定义');
            return;
        }
        
        let currentTheme = 'modern';
        
        // 打印wpSpiderMonitor对象内容
        console.log('📊 wpSpiderMonitor对象:', wpSpiderMonitor);
        console.log('🎨 用户主题(userTheme):', wpSpiderMonitor.userTheme);
        console.log('⚙️ 当前主题(currentTheme):', wpSpiderMonitor.currentTheme);
        console.log('👤 用户ID(userId):', wpSpiderMonitor.userId);
        
        // 检查URL参数中的主题（用于测试，最高优先级）
        const urlParams = new URLSearchParams(window.location.search);
        const urlTheme = urlParams.get('theme');
        console.log('🔗 URL主题参数:', urlTheme);
        
        if (urlTheme && ['modern', 'classic', 'minimal', 'dark', 'colorful', 'vibrant', 'cyberpunk', 'nature'].includes(urlTheme)) {
            currentTheme = urlTheme;
            console.log('✅ 使用URL主题:', currentTheme);
            applyTheme(currentTheme);
            return;
        }
        
        // 直接使用PHP传递的数据库主题
        if (wpSpiderMonitor.userTheme) {
            currentTheme = wpSpiderMonitor.userTheme;
            console.log('✅ 使用数据库主题:', currentTheme);
        } else {
            // 回退到本地存储或默认值
            currentTheme = getLocalTheme();
            console.log('💾 使用本地存储主题:', currentTheme);
        }
        
        console.log('🎯 最终应用主题:', currentTheme);
        applyTheme(currentTheme);
        
        console.log('=== 主题初始化完成 ===');
    }
    
    // 从本地存储获取主题
    function getLocalTheme() {
        try {
            const savedTheme = localStorage.getItem('wp_spider_monitor_theme');
            console.log('💾 本地存储主题值:', savedTheme);
            if (savedTheme && ['modern', 'classic', 'minimal', 'dark', 'colorful', 'vibrant', 'cyberpunk', 'nature'].includes(savedTheme)) {
                return savedTheme;
            }
        } catch (e) {
            console.log('❌ 本地存储读取错误:', e);
            // 忽略本地存储错误
        }
        return wpSpiderMonitor.currentTheme || 'modern';
    }
    
    // 应用主题到页面
    function applyTheme(theme) {
        console.log('🎨 应用主题到页面:', theme);
        
        // 移除所有主题类
        $('body').removeClass('theme-modern theme-classic theme-minimal theme-dark theme-colorful theme-vibrant theme-cyberpunk theme-nature');
        
        // 添加新主题类
        $('body').addClass('theme-' + theme);
        
        // 标记为已初始化
        $('body').addClass('theme-initialized');
        
        // 更新主题选择器
        const themeSelector = $('#interface_theme');
        if (themeSelector.length) {
            themeSelector.val(theme);
            console.log('🔄 更新主题选择器值为:', theme);
        }
        
        // 更新主题预览
        $('.theme-preview').removeClass('active');
        const themePreview = $(`.theme-preview[data-theme="${theme}"]`);
        if (themePreview.length) {
            themePreview.addClass('active');
            console.log('👁️ 激活主题预览:', theme);
        }
        
        console.log('✅ 主题应用完成:', theme);
    }

    // 确保只初始化一次
    let themeInitialized = false;
    
    function safeInitializeTheme() {
        if (!themeInitialized) {
            themeInitialized = true;
            console.log('🚀 开始安全初始化主题...');
            initializeTheme();
        }
    }

    // DOM加载完成后初始化
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', safeInitializeTheme);
        console.log('📅 DOMContentLoaded 事件已注册');
    } else {
        safeInitializeTheme();
        console.log('⚡ 立即执行初始化');
    }

    // jQuery ready事件（如果jQuery可用）
    if (typeof jQuery !== 'undefined') {
        jQuery(document).ready(safeInitializeTheme);
        console.log('📦 jQuery ready 事件已注册');
    }

})(jQuery);